软考真题
第4题
阅读以下说明和C代码,填写代码中的空(1) ~(6) ,将解答写入答题纸的对应栏内。

【说明】
下面的C代码在输入的100个英文单词中找出最小单词和最大单词。约定每个单词是仅由英文字母构成的字符串,且都不超过20个字符。单词的大小按照字典序定义。例如,单词“entry”大于“enter”、“art”小于“article”、“an”等于“An”。

【C代码】


#include
#define NUMBER100
​
int isValid(constchar *s1);
//若字符串s1仅包含英文字母则返回1,否则返回0
char toLower(char ch);
//将大写字母转换为小写字母
int usr_strcmp(char *s1, char *s2);
//比较字符串s1和s2,相等时返回0,
//s1大则返回正整数,s1小则返回负整数
void usr_strcpy(char *s1,constchar *s2);
//字符串s2拷贝给s1
int main() {
	char word[32];
	char maxWord[32]="",minWord[32]="";
	int numWord=0;
	while(numWord
		scanf("%s", (1) );
	/ /输入一个单词存入word
		if(isValid(word)) {
		if (0==numWord) {
			usr_strcpy(min Word,word);
			usr_strcpy(maxWord,word);
		}
		numWord++;
		if( (2) >0) / /调用usr_strcmp比较单词
				usr_strcpy(maxWord, word);
		/ /用maxWord记下最大单词 else
				if( (3) <0) / /调用usr_strcmp比较单词
				usr_strcpy(min Word,word);
		/ /用min Word记下最小单词
	}
}
printf("max Word=%s min Word=%s/n",max Word,min Word);
return 0;
}
int is Valid(const char *s) {
for (; *s ; s++)
if(!(*s>='a' && *s<='z') && !(*s>='A' && *s<='Z'))
return 0;
return 1;
}
char toLower(char ch) {
//若ch为大写字母则返回其小写形式,否则直接返回原字符
if(ch>='A' && ch<='Z')
ch= (4) +'a';
return ch;
}
int usr_strcmp(char *s1,char *s2) {
//按字典序比较两个英文单词,若s1表示的单词大,则返回正整数,
//若s1表示的单词小,则返回负整数;否则返回0
for (; (5) ;) {
	if(toLower(*s1)==toLower(*s2)) {
		s1++,s2++;
	} else
		break;
}
return(toLower(*s1) - toLower(*s2));
}
voidusr_strcpy(char *s1,const char *s2) {
//将s2表示的字符串复制给s1
for (; (6) ;)
*s1++= *s2++;
*s1='/0';
}

【问题4.1】
2018年 上半年 下午试卷 案例
正确答案:
你的答案:
请先在App中激活(应用市场搜“软考真题”)
知识点:
试卷:
2018年 上半年 下午试卷 案例

笔记

李李明白

请先在App中激活(应用市场搜“软考真题”)

2022-05-24


从南向北

请先在App中激活(应用市场搜“软考真题”)

2020-11-06


请先在App中激活(应用市场搜“软考真题”)

2019-10-29


请先在App中激活(应用市场搜“软考真题”)

2019-11-07


秋酿

请先在App中激活(应用市场搜“软考真题”)

2021-05-05


答题卡
加油
纠错
得分:0